package com.ifar.audiosdk.service

import android.app.*
import android.content.Intent
import android.os.*
import android.widget.RemoteViews
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import com.blankj.utilcode.util.AppUtils
import com.ifar.audiosdk.R

class NotificationMyStyleService : Service() {
    private lateinit var vibrator: Vibrator

    override fun onBind(intent: Intent): IBinder? {
        return null
    }

    override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
        val view = RemoteViews(packageName, R.layout.notification_view)

        val notificationManager = NotificationManagerCompat.from(this)

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            val channel = NotificationChannel(
                packageName,
                packageName + AppUtils.getAppName(),
                NotificationManager.IMPORTANCE_HIGH
            )
            notificationManager.createNotificationChannel(channel)
        }

        //创建 NEW_MESSAGE 渠道通知栏  在API级别26.1.0中推荐使用此构造函数 Builder(context, 渠道名)
        val builder: NotificationCompat.Builder =
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) NotificationCompat.Builder(
                this, packageName
            ) else NotificationCompat.Builder(this)
        builder.setSmallIcon(R.mipmap.ic_launcher) // 小图标
            .setContentText("111") // 内容
            .setContentTitle("222") // 标题
            .setSubText("333") // APP名称的副标题
            .setPriority(NotificationCompat.PRIORITY_DEFAULT) //设置优先级 PRIORITY_DEFAULT
            .setTicker("444") // 设置通知首次弹出时，状态栏上显示的文本
//            .setContent(view)
            .setWhen(System.currentTimeMillis()) // 设置通知发送的时间戳
            .setShowWhen(true) //设置是否显示时间戳
            .setAutoCancel(true) // 点击通知后通知在通知栏上消失
            .setDefaults(Notification.PRIORITY_HIGH) // 设置默认的提示音、振动方式、灯光等 使用的默认通知选项
            .setContentIntent(null) // 设置通知的点击事件
            //锁屏状态下显示通知图标及标题 1、VISIBILITY_PUBLIC 在所有锁定屏幕上完整显示此通知/2、VISIBILITY_PRIVATE 隐藏安全锁屏上的敏感或私人信息/3、VISIBILITY_SECRET 不显示任何部分
            .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) //部分手机没效果
            .setFullScreenIntent(null, true) //悬挂式通知8.0需手动打开
        //                .setColorized(true)
        //                .setGroupSummary(true)//将此通知设置为一组通知的组摘要
        //                .setGroup(NEW_GROUP)//使用组密钥
        //                .setDeleteIntent(pendingIntent)//当用户直接从通知面板清除通知时 发送意图
        //                .setFullScreenIntent(pendingIntent,true)
        //                .setContentInfo("大文本")//在通知的右侧设置大文本。
        //                .setContent(RemoteViews RemoteView)//设置自定义通知栏
        //                .setColor(Color.parseColor("#ff0000"))
        //                .setLights()//希望设备上的LED闪烁的argb值以及速率
        //                .setTimeoutAfter(3000)//指定取消此通知的时间（如果尚未取消）。


        // 通知栏id

        // 通知栏id
        notificationManager.notify(
            111, builder.build()
        ) // build()方法需要的最低API为16 ,

        return super.onStartCommand(intent, flags, startId)
    }

}